package com.tool4j.entity.params;

import com.tool4j.util.velocity.VelocityConfig;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.List;
import java.util.Map;

@Data
@Accessors(chain = true)
public class JavaCodeConfig {

    /**
     * ORM框架
     */
    public static final String ORM_TYPE_JPA = "jpa";
    public static final String ORM_TYPE_MYBATIS = "mybatis";
    public static final String ORM_TYPE_MYBATIS_PLUS = "mybatisPlus";

    /**
     * 生成完整工程
     */
    public static final String GENERATE_TYPE_FULL = "full";

    /**
     * 生成mvc相关代码
     */
    public static final String GENERATE_TYPE_MVC = "mvc";

    /**
     * 包名
     */
    private String basePackage;

    /**
     * 生成类型
     */
    private String generateType;

    /**
     * 响应类配置
     */
    private VelocityConfig.ResultConfig resultConfig;

    /**
     * 使用内置默认分页方式
     */
    private boolean useDefaultPage;

    /**
     * 作者
     */
    private String author;

    /**
     * 接口前缀
     */
    private String apiPathPrefix;

    /**
     * 表前缀
     */
    private String tableNamePrefix;

    /**
     * 持久层框架
     */
    private String ormType;

    private Map<String, VelocityConfig.MethodConfig> methodConfigMap;

    /**
     * 模板ID
     */
    private String templateId;

    private boolean useLombok;

    private boolean swaggerSupport;

    private boolean useClassComment;

    private boolean useMethodComment;

    private boolean useFieldComment;

}
